<?php

if(!(isset($_SESSION))) session_start();

class Usuari_View {
    
    public function __construct() {
    }
    
    # Funció encarregada d'agafar el fitxer HTML de le vista que volgui retornar
    function get_template($form="get") {
        $file = SITE_ROOT."/site_media/html/usuari/usuari_".$form.".html";
        $template = file_get_contents($file);
        return $template;
    }

    # Donada una cadena dins de "{}" seleccionem el contingut que volgue retornar
    function generarFormTag($clavedestino) {
        $data_usuari = unserialize($_SESSION["usuari"]);
        $resultat_tornar = null;

        switch ($clavedestino) {
    
            case "{MAIL_USUARI}":
                $resultat_tornar = $data_usuari->getMail();                
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;
            case "{NOM_USUARI}":
                $resultat_tornar = $data_usuari->getNom();
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;
            
            case "{PRIMER_COGNOM_USUARI}":
                $resultat_tornar = $data_usuari->getPrimercognom();                
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;
            
            case "{SEGON_COGNOM__USUARI}":
                $resultat_tornar = $data_usuari->getSegoncognom();
                
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;

            case "{DATA_NAIXAMENT_USUARI}":
                $originalDate = $data_usuari->getDatanaixement();
                $newDate = date("d-m-Y", strtotime($originalDate));
                $resultat_tornar = $newDate;               
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;
            
            case "{IMATGE_PERFIL}":
                $resultat_tornar = $data_usuari->getImatgePerfil();
                //print $resultat_tornar;
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;                
                break;
            
            case "{PASSWORD_USUARI}":
                $resultat_tornar = $data_usuari->getPassword();
                
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;
            
            case "{EVENTOS_USUARIO}":
                $resultat_tornar = "<center><h3>Els teus events</h3></center><br />";
                $resultat_tornar = $resultat_tornar."<ul style='list-style-type: none;'>";
                for($i = 0; $i<$data_usuari->getNumberOfEvents(); $i++) {
                    $resultat_tornar = $resultat_tornar."<li onclick='muestraEvento(this)' id='".$data_usuari->events_usuari[$i]->getId()."'>".$data_usuari->getEventUsuari($i)->getTitol()."</li>";
                }
                $resultat_tornar = $resultat_tornar."</ul>";
                serialize($_SESSION["usuari"]);
                return $resultat_tornar;
                break;
                
            case "{EVENTS_ALL_DELETE}":
                
                $conexion = new mysqli("localhost", "root", "root", "calendaridaw2");
                $query = "SELECT * FROM event";

                foreach ($conexion->query($query) as $value) {
                    $evento_fecha_inicio = date("d-m-Y", strtotime($value["datainici"]));
                    $resultat_tornar = $resultat_tornar."<form method='post' action='index.php?calendari&action=DELETE_EVENT_ACTION'>";
                    $resultat_tornar = $resultat_tornar."<table>";                    
                        $resultat_tornar = $resultat_tornar."<tr>";
                            $resultat_tornar = $resultat_tornar."<td><b>".$value["mail"]."</b></td>";
                            $resultat_tornar = $resultat_tornar."<td>".$value["titol"]."</td>";
                            $resultat_tornar = $resultat_tornar."<td>".$evento_fecha_inicio."</td>";
                            $resultat_tornar = $resultat_tornar."<td><input type='hidden' name='idevent' value='".$value["id"]."'>";
                            $resultat_tornar = $resultat_tornar."<td><input type='submit' value='Eliminar event'>";
                        $resultat_tornar = $resultat_tornar."</tr>";
                    $resultat_tornar = $resultat_tornar."</table>";
                }
                
                $conexion->close();
                
                return $resultat_tornar;
                break;
        }

        serialize($_SESSION["usuari"]);
        return $clavedestino;
    }

    # A partir del tipus de vista desitjat cridem a les funcions necessaries que substituiran partint de les etiquetes "{}" el contingut que volguem mostrar per pantalla
    function devolver_vista($vista) {
        if(isset($vista)) {
            if($vista == "VIEW_LOGIN_USUARI") $html = $this->get_template("login"); 
            elseif($vista == "VIEW_ALTA_USUARI") $html = $this->get_template("login_alta");
            elseif($vista == "VIEW_EDIT_USUARI"){
                $html = $this->get_template("edit");
                $html = str_replace("{MAIL_USUARI}", $this->generarFormTag("{MAIL_USUARI}"), $html);
                $html = str_replace("{NOM_USUARI}", $this->generarFormTag("{NOM_USUARI}"), $html);
                $html = str_replace("{PRIMER_COGNOM_USUARI}", $this->generarFormTag("{PRIMER_COGNOM_USUARI}"), $html);
                $html = str_replace("{SEGON_COGNOM__USUARI}", $this->generarFormTag("{SEGON_COGNOM__USUARI}"), $html);
                $html = str_replace("{DATA_NAIXAMENT_USUARI}", $this->generarFormTag("{DATA_NAIXAMENT_USUARI}"), $html);
                $html = str_replace("{PASSWORD_USUARI}", $this->generarFormTag("{PASSWORD_USUARI}"), $html);
                $html = str_replace("{IMATGE_PERFIL}", $this->generarFormTag("{IMATGE_PERFIL}"), $html);
                $html = str_replace("{EVENTOS_USUARIO}", $this->generarFormTag("{EVENTOS_USUARIO}"), $html);                
            }
            else if($vista == "VIEW_ADMIN") {
                $html = $this->get_template("admin");
                $html = str_replace("{MAIL_USUARI}", $this->generarFormTag("{MAIL_USUARI}"), $html);
                $html = str_replace("{EVENTS_ALL_DELETE}", $this->generarFormTag("{EVENTS_ALL_DELETE}"), $html);
            }
        }
    
        $html = str_replace("{ROOT_FRAMEWORK}", SITE_ROOT, $html);
        print $html;
    }    
}

?>
